# 需求：
# 1. 定义动物类， 动物有姓名和年龄属性， 具有吃和睡的行为
# 2. 定义猫类， 猫类具有动物类的所有属性和方法， 并且具有抓老鼠的特殊行为
# 3. 定义狗类， 狗类具有动物类的所有属性和方法， 并且具有看门的特殊行为
# 4. 定义哮天犬类， 哮天犬类具有狗类的所有属性和方法， 并且具有飞的特殊行为
class Animal(object):
    """动物类"""

    def __init__(self, name, age):
        """设置属性"""
        self.name = name  # 姓名
        self.age = age  # 年龄

    def eat(self):
        """吃方法"""
        print(f"{self.name}吃东西")

    def sleep(self):
        """睡方法"""
        print(f"{self.name}要睡觉")

class Cat(Animal):
    """猫类"""
    def catch(self):
        """抓老鼠方法"""
        print(f"{self.name}会抓老鼠")

class Dog(Animal):
    """狗类"""

    def look_door(self):
        """看门方法"""
        print(f"{self.name}会看门")


class XiaoTianQuan(Dog):
    """哮天犬类"""
    def fly(self):
        """飞方法"""
        print(f"{self.name}会飞")

#创建对象
tom = Cat("汤姆",3)
xtq = XiaoTianQuan("天神",100)
# 调用方法
tom.catch()
tom.eat()
xtq.fly()
xtq.look_door()
xtq.sleep()
# 子类对象拥有父类的所有属性和方法
